package com.zz.admin.userManagement.dto;

import com.zz.common.base.dto.BaseDto;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

/**
 * 用户表 实体类
 * @author zhang.lei
 * @since 2025-04-15 19:25:06
 */
@Data
@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "用户表")
public class UserDto extends BaseDto {

    @ApiModelProperty(value = "主键", name = "userId")
    private String userId;

    @ApiModelProperty(value = "用户编码", name = "userCode")
    private String userCode;

    @ApiModelProperty(value = "用户名称", name = "userName")
    private String userName;

    @ApiModelProperty(value = "头像url", name = "avatarFileName")
    private String avatarFileName;

    @ApiModelProperty(value = "性别", name = "sex")
    private String sex;

    @ApiModelProperty(value = "出生日期", name = "birthDay")
    private LocalDate birthDay;

    @ApiModelProperty(value = "年龄", name = "age")
    private Integer age;

    @ApiModelProperty(value = "毕业院校", name = "school")
    private String school;

    @ApiModelProperty(value = "学历", name = "education")
    private String education;

    @ApiModelProperty(value = "专业", name = "major")
    private String major;

    @ApiModelProperty(value = "职称", name = "jobTitle")
    private String jobTitle;

    @ApiModelProperty(value = "职务", name = "jobPost")
    private String jobPost;

    @ApiModelProperty(value = "公司id", name = "companyId")
    private String companyId;

    @ApiModelProperty(value = "公司编码", name = "companyCode")
    private String companyCode;

    @ApiModelProperty(value = "公司名称", name = "companyName")
    private String companyName;

    @ApiModelProperty(value = "部门id", name = "departmentId")
    private String departmentId;

    @ApiModelProperty(value = "部门编码", name = "departmentCode")
    private String departmentCode;

    @ApiModelProperty(value = "部门名称", name = "departmentName")
    private String departmentName;

    @ApiModelProperty(value = "登录账号", name = "loginAccount")
    private String loginAccount;

    @ApiModelProperty(value = "登录密码", name = "passWord")
    private String passWord;

    @ApiModelProperty(value = "角色名称", name = "role")
    private String role;

    @ApiModelProperty(value = "手机号", name = "telephone")
    private String telephone;

    @ApiModelProperty(value = "身份证号", name = "idNumber")
    private String idNumber;

    @ApiModelProperty(value = "邮箱", name = "email")
    private String email;

    @ApiModelProperty(value = "地址", name = "address")
    private String address;

    @ApiModelProperty(value = "状态", name = "status")
    private String status;

    @ApiModelProperty(value = "外部id", name = "thirdPartyId")
    private String thirdPartyId;

    @ApiModelProperty(value = "是否使用系统", name = "useSys")
    private String useSys;

    @ApiModelProperty(value = "删除标识(0:未删除 1:已删除)", name = "delFlag")
    private String delFlag;

    @ApiModelProperty(value = "最后登录ip", name = "lastLoginIp")
    private String lastLoginIp;

    @ApiModelProperty(value = "最后登录时间", name = "lastLoginTime")
    private Long lastLoginTime;

    @ApiModelProperty(value = "失效时间", name = "failureTime")
    private Long failureTime;

    @ApiModelProperty(value = "创建人name", name = "createBy", hidden = true)
    private String createBy;

    @ApiModelProperty(value = "更新人name", name = "updateBy", hidden = true)
    private String updateBy;

    @ApiModelProperty(value = "创建时间", name = "createDate")
    private LocalDateTime createDate;

    @ApiModelProperty(value = "更新时间", name = "updateDate")
    private LocalDateTime updateDate;

    private String expand1;

    private String expand2;

    private String expand3;

    private String expand4;

    private String expand5;

    // ================= 以下为自定义字段 =================

}
